import { request } from "../../request/request.js";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goodsObj: {},
    pics:[],
    cid: "",
    isCollect: false,
    flag:false,
  },
  //判断是否是秒杀商品
  // 商品对象
  GoodsInfo: {},
  pics: [],
  //判断用户是否登录
  Login: false,

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //普通商品
    if(options.cid != undefined){
      const {cid} = options;
      this.setData({
        cid,
        flag:false
      })
      this.getGoodsDetail(cid);
    }
    //秒杀商品
    if(options.goodId != undefined){
      const goodId = options.goodId;
      this.setData({
        cid:goodId,
        flag:true
      })
      this.getGoodsDetail(goodId);
    }
  },

  // 获取商品详情数据
  async getGoodsDetail(cid) {
    console.log(this.data.flag);
    const db = wx.cloud.database()
    const that = this
    const goodsObj = await request({ url: "/goods/goodsDetailById" , data:{cid}}).catch((err) =>{console.log("服务器连接失败");});
    this.GoodsInfo = goodsObj;
    //判断商品是否收藏 1表示被收藏了
    if(goodsObj[0].isCollect == 1){
      this.setData({
        isCollect:true
      });
      // 1 获取缓存中的商品收藏数组
    let collect=wx.getStorageSync("collect")||[];
    // 2 判断该商品是否已经缓存

    let index = collect.findIndex(v => v.goodId === goodsObj[0].goodId);
    // 3 当index！=-1表示 已经收缓存 
      if(index == -1){
        collect.push(this.GoodsInfo[0]);
        // 4 把数组存入到缓存中
        wx.setStorageSync("collect", collect);
      }
     
    }

    this.setData({
      goodsObj:{
        goods_name: goodsObj[0].goodName,
        goods_price: goodsObj[0].goodPrice,
        goods_introduce: goodsObj[0].goodIntroduce
      }
    });

    //cid 在云数据库获取 图片
    db.collection('pics').where({
      cid
    }).get({
      success: function(res) {
        // res.data 包含该记录的数据
       that.setData({
          pics:res.data[0].pics
      })
      },
    });

    },

    // 点击轮播图 放大预览
    handlePrevewImage(e) {
      console.log(e);
    // 1 先构造要预览的图片数组 
    const urls = this.data.pics.map(v => v);
    // 2 接收传递过来的图片url
    const current = e.currentTarget.dataset.url;
    wx.previewImage({
      current,
      urls
    });

  },

    // 点击 加入购物车
    handleCartAdd() {
      this.userLogin();
      var boolen = this.Login;
    if(boolen){
      // 1 获取缓存中的购物车 数组
      let cart = wx.getStorageSync("cart") || [];
      // 2 判断 商品对象是否存在于购物车数组中
      console.log(this.GoodsInfo);
      let index = cart.findIndex(v => v[0].goodId === this.GoodsInfo[0].goodId);

      
      if (index === -1) {
        //3  不存在 第一次添加
        this.GoodsInfo[0].num = 1;
        this.GoodsInfo[0].checked = true;
        cart.push(this.GoodsInfo);
      } else {
        // 4 已经存在购物车数据 执行 num++
        cart[index][0].num++;
      }
      // 5 把购物车重新添加回缓存中
      wx.setStorageSync('cart', cart)
      // 6 弹窗提示
      wx.showToast({
        title: '加入成功',
        icon: 'success',
        // true 防止用户 手抖 疯狂点击按钮 
        mask: true
      });
    }
    },
      // 点击 商品收藏图标
  handleCollect(){

    this.userLogin();
    var boolen = this.Login;
    if(boolen){
      let isCollect=false;
      let id;
      let collect_id;
      // 1 获取缓存中的商品收藏数组
      let collect=wx.getStorageSync("collect")||[];
      console.log(collect);
      // 2 判断该商品是否被收藏过
      let index = collect.findIndex(v => v.goodId === this.GoodsInfo[0].goodId);
      // 3 当index！=-1表示 已经收藏过 
      if(index!==-1){
        // 能找到 已经收藏过了  在数组中删除该商品
        id = collect[index].goodId;
        collect_id = 0;
        collect.splice(index,1);
        isCollect=false;
        wx.showToast({
          title: '取消成功',
          icon: 'success',
          mask: true
        });   
      }else{
        // 没有收藏过
        collect.push(this.GoodsInfo[0]);
        id = this.data.cid
        collect_id = 1
        isCollect=true;
        wx.showToast({
          title: '收藏成功',
          icon: 'success',
          mask: true
        });
      }
      //更新数据库的collect
      request({url:"/update/goodsCollect" , data:{id , collect_id}});
      // 4 把数组存入到缓存中
      wx.setStorageSync("collect", collect);
      // 5 修改data中的属性  isCollect
      this.setData({
        isCollect
      })
    }

      
  },
  //判断用户是否登录
  userLogin(){
    //判断用户是否登录
    var userinfo = wx.getStorageSync('userinfo');
    var that = this
    if(!userinfo){
      wx.showModal({
        title: '提示',
        content: '您还未登录，请登录！',
        success: function(res) {
        if (res.confirm) {
          wx.switchTab({
            url: '../my/my',
          })
        } else if (res.cancel) {
          that.Login = false;
        }
        }
        })
    }
  },
  //点击 购买
  handleBuy(){
    this.userLogin();
    const good_id = this.data.cid;
    this.GoodsInfo[0].num = 1;
    wx.setStorageSync('order', this.GoodsInfo)
    wx.navigateTo({
      url: '/pages/buy/buy?good_id='+good_id
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    var flag = wx.getStorageSync('userinfo');
    if(flag){
      this.Login = true
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})